/**
 * 画布元素类型
 */
export interface CanvasElement {
  /** 元素ID */
  id: string;
  /** 元素类型 */
  type: string;
  /** 元素位置 */
  position: {
    x: number;
    y: number;
  };
  /** 元素尺寸 */
  size: {
    width: number;
    height: number;
  };
  /** 旋转角度 */
  angle?: number;
  /** 层级 */
  zIndex?: number;
  /** 元素属性 */
  properties: {
    /** 设备名称 */
    name?: string;
    /** 设备图标 */
    icon?: string;
    /** 自定义图片URL */
    imageUrl?: string;
    /** 描述信息 */
    description?: string;

    // -- 外观属性 --
    /** 标题是否可见 */
    labelEnabled?: boolean;
    /** 标题颜色 */
    labelColor?: string;
    /** 标题字体大小 */
    labelFontSize?: number;
    /** 标题垂直间距 */
    labelVSpan?: number;
    /** 标题水平间距 */
    labelHSpan?: number;
    /** 标题位置 */
    labelPosition?:
      | 'top'
      | 'bottom'
      | 'left-center'
      | 'right-center'
      | 'center'
      | 'top-left'
      | 'top-right'
      | 'bottom-left'
      | 'bottom-right';

    /** 背景是否启用 */
    backgroundEnabled?: boolean;
    /** 背景颜色 */
    backgroundColor?: string;

    /** 边框是否启用 */
    borderEnabled?: boolean;
    /** 边框宽度 */
    borderWidth?: number;
    /** 边框颜色 */
    borderColor?: string;
    /** 边框样式 */
    borderStyle?: 'solid' | 'dashed' | 'dotted';

    /** 其他自定义属性 */
    [key: string]: any;
  };
}

/**
 * 设备类型定义
 */
export interface DeviceType {
  /** 设备类型ID */
  id: string;
  /** 设备名称 */
  name: string;
  /** 设备图标 */
  icon: string;
  /** 默认图标 */
  defaultIcon: string;
}

/**
 * X6 相关类型扩展
 */
export interface X6NodeConfig {
  id: string;
  shape: string;
  x: number;
  y: number;
  width: number;
  height: number;
  angle?: number;
  attrs?: Record<string, any>;
  ports?: {
    groups: Record<string, any>;
    items: Array<{ group: string; id?: string }>;
  };
}
